numbers = int(input())
number_list = list(map(int, input().split()))
abs_number = list()
neg_count = 0
flag = 'no'
for number in number_list:
if number < 0:
flag = 'yes'
neg_count += 1
abs_number.append(abs(number))
if flag == 'yes':
if numbers % 2 == 1:
print(sum(abs_number))
elif neg_count % 2 == 1:
abs_number.sort()
abs_number[0] *= -1
print(sum(abs_number))
else:
print(sum(abs_number))
else:
print(sum(number_list))
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define in insert
#define int long long
void dfs(int n,int par,vector<vector<int>> &arr,vector<int> &depth,vector<int> &dis){
for(auto child:arr[n]){
if(child!=par){
dis[child]=dis[n]+1;
dfs(child,n,arr,depth,dis);
depth[n]=max(depth[child]+1,depth[n]);
}
}
}
signed main(){
int n;
cin>>n;
int arr[2*n-1];
int c =0;
int sum = 0;
for (int i = 0; i < 2*n-1; ++i)
{
cin>>arr[i];
if(arr[i]<0){
c++;
/* code */
}
arr[i]=abs(arr[i]);
sum+=abs(arr[i]);
}
if(n%2){
c=0;
}
else{
c=c%2;
}
// cout<<c<<endl;
sort(arr,arr+2*n-1);
for (int i = 0; i < c; ++i)
{
sum-=2*arr[i];
/* code */
}
cout<<sum<<endl;
}
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |
445. Add Two Numbers II | 442. Find All Duplicates in an Array |
437. Path Sum III | 436. Find Right Interval |
435. Non-overlapping Intervals | 406. Queue Reconstruction by Height |
380. Insert Delete GetRandom O(1) | 332. Reconstruct Itinerary |
368. Largest Divisible Subset | 377. Combination Sum IV |
322. Coin Change | 307. Range Sum Query - Mutable |
287. Find the Duplicate Number | 279. Perfect Squares |
275. H-Index II | 274. H-Index |
260. Single Number III | 240. Search a 2D Matrix II |
238. Product of Array Except Self | 229. Majority Element II |
222. Count Complete Tree Nodes | 215. Kth Largest Element in an Array |
198. House Robber | 153. Find Minimum in Rotated Sorted Array |
150. Evaluate Reverse Polish Notation | 144. Binary Tree Preorder Traversal |